<template>
    <div>
        <div v-if="login">
            <input placeholder="请输入您的新密码(6-16位数字与字母的组合)" v-model="code1" type="password">
            <div class="line"></div>
            <input placeholder="请输入您的新密码(6-16;位数字与字母的组合)" v-model="code2" type="password">
            <div class="sure" @click="toRevise('login')">完成</div>
        </div>
        <div v-else>
            <input placeholder="请输入6位数新密码" v-model="code1"
                   type="number" style="-webkit-text-security:disc;text-security:disc;"
                   pattern="[0-9]*"
                   onkeypress='return( /[\d]/.test(String.fromCharCode(event.keyCode) ) )'>
            <div class="line"></div>
            <input placeholder="请再次输入您的新密码(6位数字)" v-model="code2"
                   type="number" style="-webkit-text-security:disc;text-security:disc;"
                   pattern="[0-9]*"
                   onkeypress='return( /[\d]/.test(String.fromCharCode(event.keyCode) ) )'>
            <div class="sure" @click="toRevise('pay')">完成</div>
        </div>
    </div>
</template>

<script>
    import API from '../../request/api';
    import {Toast} from 'vant';

    export default {
        data() {
            return {
                code1: '',
                code2: '',
                login: false
            };
        },
        computed: {},
        watch: {
            // 监听具体数据变化，并做相应的处理
        },
        methods: {
            toRevise(type) {
                if (this.code1 === this.code2) {
                    if (type === 'login') {
                        this.requset();
                    } else {
                        if (this.code1.length !== 6) {
                            Toast('密码请输入6位');
                        } else {
                            this.requset();
                        }
                    }
                } else {
                    Toast('两次密码输入不一致');
                }

            },
            requset() {
                let data = {
                    password: this.code1,
                    token: this.$route.query.token
                };
                let type = this.$route.query.type;
                let api;
                let rou = 'user';
                if (type === '3') {
                    api = API.changePassword;//修改登录密码
                } else if (type === '6') {
                    api = API.setPass;//设置支付密码
                    rou = this.$route.query.direct ? this.$route.query.direct : 'user';
                } else if (type === '5') {
                    api = API.changePass;//修改支付密码
                    rou = this.$route.query.direct ? this.$route.query.direct : 'user';
                }
                this.request.post(api, data).then(res => {
                    Toast('修改成功');
                    this.$router.push(rou);
                }, (res) => {
                    console.log(res);
                });
            }
        },
        beforeCreate() {
            // 可以在这加个loading事件，在加载实例时触发
            // 这个阶段实例的data、methods是读不到的
        },
        created() {
            // 初始化数据，如在这结束loading事件，异步ajax请求也适宜在这里调用
            // 实例创建后：这个阶段已经完成了数据观测(data observer)，属性和方法的运算， watch/event 事件回调。
            // mount挂载阶段还没开始，"el" 属性目前不可见，数据并没有在DOM元素上进行渲染
        },
        beforeMount() {
            // 相关的 render 函数首次被调用。
        },
        mounted() {
            this.login = this.$route.query.type === '3';
            // 挂载元素，获取到DOM节点
            // el选项的DOM节点 被新创建的 vm的el 替换，并挂载到实例上去之后调用此生命周期函数。此时实例的数据在DOM节点上进行渲染
        },
        beforeUpdate() {
            // 数据更新时调用，但不进行DOM重新渲染，在数据更新时DOM没渲染前可以在这个生命函数里进行状态处理
        },
        updated() {
            //  如果对数据统一处理，在这里写上相应函数
            // 这个状态下数据更新并且DOM重新渲染，当这个生命周期函数被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。当实例每次进行数据更新时updated都会执行
        },
        beforeDestroy() {
            // 可以做一个确认停止事件的确认框
        },
        destroyed() {
            // Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，所有的事件监听器会被移除，所有的子实例也会被销毁
        }
    };

</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
    @import '~assets/main.styl'
    input {
        width 100vw
        height vw(45)
        line-height vw(45)
        padding 0 cellPadding
        font-size word14
        box-sizing border-box
    }

    .sure {
        btn-sta()
    }
</style>
